Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Aug 28, 2025

Link: llvm/llvm-project#123518
Requested by: @fhahn

@github-actions github-actions bot mentioned this pull request Aug 28, 2025
@zyw-bot
Copy link
Collaborator Author

zyw-bot commented Aug 28, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@9c994f5
patch: llvm/llvm-project#123518
sha256: 9121a04312834d30b15c9854602c12a3388113e80fa8e8643f050b84b08061a3
commit: ca8c8f3

1011 files changed, 31359 insertions(+), 31086 deletions(-)

Improvements:
  gvn.NumGVNInstr 155874 -> 155906 +0.02%
  gvn.NumGVNPRE 155874 -> 155906 +0.02%
  licm.NumPromotionCandidates 611909 -> 612020 +0.02%
  simplifycfg.NumSinkCommonInstrs 808095 -> 808233 +0.02%
  indvars.NumReplaced 71254 -> 71261 +0.01%
  simplifycfg.NumSinkCommonCode 372936 -> 372972 +0.01%
  loop-instsimplify.NumSimplified 188296 -> 188311 +0.01%
  simple-loop-unswitch.NumBranches 107291 -> 107298 +0.01%
  simple-loop-unswitch.NumCostMultiplierSkipped 17708 -> 17709 +0.01%
  correlated-value-propagation.NumSExt 49183 -> 49185 +0.00%
Regressions:
  sccp.NumInstRemoved 2023497 -> 2023409 -0.00%
  build-libcalls.NumNoUnwind 24033 -> 24032 -0.00%
  licm.NumSunk 276275 -> 276264 -0.00%
  function-attrs.NumNonNullReturn 25219 -> 25218 -0.00%
  build-libcalls.NumReadOnly 32026 -> 32025 -0.00%
  gvn.NumGVNEqProp 441688 -> 441678 -0.00%
  build-libcalls.NumArgMemOnly 49776 -> 49775 -0.00%
  sccp.NumDeadBlocks 707054 -> 707040 -0.00%
  abstract-call-sites.NumInvalidAbstractCallSitesNoCallback 106120 -> 106118 -0.00%
  build-libcalls.NumWillReturn 57451 -> 57450 -0.00%

1 1 bench/abc/optimized/ac_wrapper.ll
21 21 bench/abc/optimized/giaMf.ll
104 104 bench/abseil-cpp/optimized/convert_test.ll
30 30 bench/abseil-cpp/optimized/escaping_test.ll
23 23 bench/abseil-cpp/optimized/inlined_vector_test.ll
32 32 bench/abseil-cpp/optimized/layout_test.ll
18 18 bench/abseil-cpp/optimized/numbers_test.ll
16 16 bench/abseil-cpp/optimized/str_cat_test.ll
2 2 bench/actix-rs/optimized/2nm6r5hc2u1hk1e1.ll
39 39 bench/annoy/optimized/annoymodule.ll
4 4 bench/casadi/optimized/sx_node.ll
36 36 bench/cmake/optimized/cmCoreTryCompile.ll
25 25 bench/cpython/optimized/initconfig.ll
6 6 bench/cvc5/optimized/strings_entail.ll
48 48 bench/ffmpeg/optimized/cavsdsp.ll
72 72 bench/ffmpeg/optimized/vf_dctdnoiz.ll
28 28 bench/flatbuffers/optimized/cpp_generator.ll
15 15 bench/hdf5/optimized/H5Zscaleoffset.ll
5 5 bench/image-rs/optimized/2mngkegtim1o10y3.ll
3 3 bench/libevent/optimized/evdns.ll
33 33 bench/libigl/optimized/outer_edge.ll
42 42 bench/libjpeg-turbo/optimized/jidctint.ll
20 20 bench/libphonenumber/optimized/phonenumbermatcher_test.ll
11 11 bench/miniaudio/optimized/unity.ll
10 10 bench/node/optimized/libnode.node_process_object.ll
22 24 bench/openssl/optimized/drbgtest.ll
26 26 bench/openssl/optimized/t1_trce.ll
73 73 bench/pola-rs/optimized/00p9yq8dlhxh4oh7g0hq00qlb.ll
9 9 bench/pola-rs/optimized/c4rn3zpjqdots925h9qverc7h.ll
14 14 bench/postgres/optimized/fe-connect.ll
12 12 bench/raylib/optimized/raudio.ll
20 23 bench/rust-analyzer-rs/optimized/1n6t6n716s6vtscg.ll
53 56 bench/rust-analyzer-rs/optimized/1rhf3pjhhflazor1.ll
16 19 bench/rust-analyzer-rs/optimized/2jezmucvqvfiuhvx.ll
43 46 bench/rust-analyzer-rs/optimized/3aojx6tzw7bx942t.ll
19 22 bench/rust-analyzer-rs/optimized/4tstt0w6z5grnfcy.ll
28 31 bench/rust-analyzer-rs/optimized/84mgk0fwp2eksq1.ll
8 8 bench/rustfmt-rs/optimized/3n0n7c4xrusd0kzl.ll
89 89 bench/sdl/optimized/SDL_waylanddyn.ll
7 7 bench/sqlite/optimized/sqlite3.ll
24 24 bench/syn/optimized/2khi0xu1ufmhwoo.ll
37 37 bench/typst-rs/optimized/3kgmqnxcsl3z3n0n.ll
3 3 bench/yosys/optimized/simplec.ll
6 6 bench/z3/optimized/polynomial.ll
23 28 bench/zxing/optimized/BarcodeFormat.ll

@github-actions
Copy link
Contributor

The changes in the diff involve increasing alignment attributes in LLVM IR instructions across multiple files. The key modifications are:

  1. Increased alignment for load instructions: In numerous files (e.g., ac_wrapper.ll, giaMf.ll, convert_test.ll), the alignment for load instructions of pointer and integer types has been increased from 8 to 16 bytes. This affects operations involving std::string destruction, memory access in string handling, and pointer arithmetic.

  2. Increased alignment for store instructions: Similar alignment increases from 8 to 16 bytes are applied to store instructions, particularly for 32-bit and 64-bit integers and pointers, as seen in giaMf.ll and inlined_vector_test.ll.

  3. Adjustments in memcpy alignment: In giaMf.ll, the destination pointer alignment in a memcpy call is updated from 8 to 16 bytes, while the source remains at 8 bytes, reflecting more conservative alignment assumptions.

  4. Enhanced alignment for vectorized loads: In annoymodule.ll, alignment for <8 x float> vector loads is increased from 1 to 4, 8, or 16 bytes depending on context, improving assumptions for SIMD operations.

  5. Alignment updates in structure field access: Files like actix-rs and ffmpeg show alignment increases for loads and stores of structure fields, from 1 or 2 bytes to 8 or 16 bytes, indicating better alignment knowledge for struct members.

These changes reflect improved alignment information, likely from enhanced static analysis or updated type metadata, enabling more efficient code generation and safer memory access.

model: qwen-plus-latest
CompletionUsage(completion_tokens=350, prompt_tokens=119460, total_tokens=119810, completion_tokens_details=None, prompt_tokens_details=None)

%bcmp.i = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %.pn70.i, ptr noundef nonnull dereferenceable(2) %.171.i, i64 2)
%123 = icmp eq i32 %bcmp.i, 0
%.171.i = getelementptr inbounds nuw i8, ptr %.pn71.i, i64 2
%rhsv.i = load i16, ptr %.171.i, align 2
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

improvement, using compare instead of libcall

Comment on lines -23356 to -23359
%69 = getelementptr inbounds nuw i8, ptr %.sroa.016.071, i64 32
%70 = load ptr, ptr %69, align 8, !alias.scope !7590, !noalias !7591, !nonnull !15, !align !3953, !noundef !15
%71 = getelementptr inbounds nuw i8, ptr %.sroa.016.071, i64 40
%72 = load i64, ptr %71, align 8, !alias.scope !7590, !noalias !7591, !noundef !15
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

Comment on lines -13978 to -13982
%23 = getelementptr inbounds nuw i8, ptr %.sroa.014.032, i64 8
%24 = load ptr, ptr %23, align 8, !alias.scope !3910, !noalias !3911, !nonnull !20, !align !21, !noundef !20
%25 = getelementptr inbounds nuw i8, ptr %.sroa.014.032, i64 16
%26 = load i64, ptr %25, align 8, !alias.scope !3910, !noalias !3911, !noundef !20
br label %29
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

block with load remove

%69 = getelementptr inbounds nuw i8, ptr %.sroa.016.071, i64 25
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %.sroa.620.i, ptr noundef nonnull readonly align 1 dereferenceable(7) %69, i64 7, i1 false), !noalias !5343
br label %73

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

block with load removed

Comment on lines -10810 to -10813
%23 = getelementptr inbounds nuw i8, ptr %.sroa.013.033, i64 8
%24 = load ptr, ptr %23, align 8, !alias.scope !3279, !noalias !3280, !nonnull !16, !align !670, !noundef !16
%25 = getelementptr inbounds nuw i8, ptr %.sroa.013.033, i64 16
%26 = load i64, ptr %25, align 8, !alias.scope !3279, !noalias !3280, !noundef !16
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

block with load removed

Comment on lines -10865 to -10869
%69 = getelementptr inbounds nuw i8, ptr %.sroa.016.071, i64 32
%70 = load ptr, ptr %69, align 8, !alias.scope !3318, !noalias !3319, !nonnull !23, !align !363, !noundef !23
%71 = getelementptr inbounds nuw i8, ptr %.sroa.016.071, i64 40
%72 = load i64, ptr %71, align 8, !alias.scope !3318, !noalias !3319, !noundef !23
br label %"_ZN53_$LT$smol_str..Repr$u20$as$u20$core..clone..Clone$GT$5clone17h618261f33d488897E.exit14.i"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

block with load removed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants